Instalando e configurando o Tactium MIS

928 Visualizações
14, setembro de 2023
Júlia Santos

Visão Geral

O Tactium MIS é um banco de dados de informações operacionais e administrativas organizadas de forma a produzir relatórios regulares sobre as operações para todos os níveis de gestão de uma organização.

O processo a seguir detalha as etapas necessárias para utilização de dois databases distintos, o database operacional e um segundo database histórico (Tactium_MIS) onde serão geradas cópias das informações operacionais que serão fornecidas aos clientes através da utilização da API.

A base de dados atualmente armazena os valores dos relatórios Detalhe de Ligações e Detalhe de Atividades da solução Tactium IP e Detalhe de Atendimentos de Mensagem e Produtividade Campanhas Omni da solução Tactium CRM/OMNI.

Criando a estrutura da base Tactium MIS

O processo de implementação da estrutura do MIS é iniciado através da criação da base de dados que será utilizada neste processo.

Base de Dados

Realize o download e execute em seguida o script abaixo para criação da base:

O script abaixo criará uma base de nome “Tactium_MIS”, mas o nome da base pode conter outra definição caso desejado. Basta inserir o nome escolhido na linha: “IF (NOT EXISTS (SELECT name FROM SYS.databases WHERE  name = ‘NOMEDABASE’))“.

Tenha acesso ao script através do link abaixo:

[CREATE DATABASE [Tactium_MIS]]

Em seguida execute o script adicional na base recém criada do Tactium_MIS, script contempla a criação de mais duas tabelas para acesso aos novos relatórios do Tactium CRM/OMNI, através do link abaixo:

O script abaixo criará uma  conexão com a base de dados do Tactium CRM na tabela T_STP. Basta inserir o nome da base de dados nas linhas:

EXEC [NOMEDABASE_CRM]..[SP_CONSULTA_OMNI_CAMPANHA]
EXEC [NOMEDABASE_CRM]..[SP_CONSULTA_AtendimentoWhatsapp]

[CREATE TABLES [X_DetProdCampOmni_X_DetAtdWpp]

Procedures

Após a criação da estrutura da base de dados, criaremos também as procedures SP_ExecProcedures, SP_ComparaProcedures e SP_ExecuteBI:

Tenha acesso aos scripts correspondentes através dos links abaixo:

Execute os scripts abaixo na base Tactium_MIS.

[SP_ExecProcedures]
[SP_ComparaProcedures]
[SP_ExecuteBI]

Procedures no Database Tactium CRM

Execute os scripts abaixo na base Tactium_CRM caso a versão do CRM/OMNI seja inferior a 5.53.7.2.

Atualizaremos também as procedures SP_CONSULTA_AtendimentoWhatsapp, SP_CONSULTA_OMNI_CAMPANHA.

Tenha acesso aos scripts correspondentes através dos links abaixo:

[SP_CONSULTA_AtendimentoWhatsapp]
[SP_CONSULTA_OMNI_CAMPANHA]

Jobs

A Base de MIS conterá sempre os dados de d-1, logo serão apresentados dados do dia anterior à entrada da solicitação. Dito isto, para a população desses dados é necessário criar processos (jobs) que farão a consulta dos dados no TactiumIP e Tactium CRM/OMNI e irão inseri-los na base Tactium_MIS.

Para configurar os Jobs onde serão realizados este processo, realize as etapas abaixo:

1. Execute estes comandos (inserts) na base Tactium_MIS:

INSERTS_TACTIUMIP_MIS

Nesse script será necessário definir o nome do banco de dados do Tactium IP. Está configurado como “TactiumIP” que é o nome padrão do banco de dados do Tactium IP.

 

 

Em ambientes que já foram implantados, o script adicional abaixo deverá ser executado, pois em novas versões da aplicação foi incluído um novo campo na procedure “SP_CON_DETATVAGENTE”.

[ALTER_TACTIUM_MIS]

 

2. Dando continuidade, iremos criar o Job onde será executado a procedure SP_ExecuteBI, todos os dias, para que a mesma faça a população dos dados para a base Tactium_MIS:

No menu lateral Object Explorer, clique na opção SQL Server Agent.

Na opção SQL Server Agent crie um novo Trabalho, no caminho Trabalho (Job) >> Novo Trabalho (New Job).

3. Cadastre um Novo passo (Step), de acordo com a tabela abaixo:

Nome da Etapa

Step 1

Tipo

Script Transact-SQL (T-SQL)

Banco de Dados

Tactium_MIS

Comando

Declare @DTINICIO Char(19) = Convert(Char(10), getdate()-1, 103) + ‘ 00:00:00’, @DTFIM Char(19) = Convert(Char(10), getdate()-1, 103) + ‘ 23:59:59’Exec SP_ExecuteBI @DTINICIO, @DTFIM

O comando do Job executará a carga dos dados de 1 em 1 dia (Dia corrente – 1), de acordo com regra criada acima. Porém, caso necessite gerar uma carga de uma única vez com vários dias, podemos sugerir o comando abaixo para ser executado diretamente no SQL (durante a implantação) passando a quantidade de dias necessários na variável “@dias”.

[Comando_SQL_Carregar_VáriosDias_MIS]

4. Cadastre uma Nova Agenda (Schedules), de acordo com a tabela abaixo:

Nome Principal
Tipo de agenda Recorrente
Caixa de seleção “Habilitado”
Ocorre Diariamente
Repete-se a cada 1
Ocorre uma vez em 00:00:20
Data de início Data de início do cenário de produção da Base Tactium_MIS
Caixa de seleção “Sem data de término”
Descrição Ocorre diariamente às 23:00:00. A Agenda será usada a partir de 24/05/2023.

Instalando o serviço ReportAPI

A API utilizada para consulta dos dados históricos da base Tactium_MIS é a ReportAPI. Ela fornece informações de relatórios de BI do TactiumIP. Ela funciona como um serviço RESTful, e utiliza autenticação JWT Bearer para funcionar.

O processo de implementação da estrutura para utilização da ReportAPI  é inicialmente configurar o ambiente onde esta será implantada, siga o processo abaixo:

  • Instalando/ Habilitando o IIS (Internet Information Services) com as seguintes configurações marcadas:

  • .NET Core Bundle

Em seguida, baixe e instale o pacote do .NET Core Bundle.

O download do pacote do .NET Core Bundle pode ser realizado a partir da seguinte URL: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-6.0.15-windows-hosting-bundle-installer

  • Configurando o Pool de Aplicativos e o Site do ReportAPI

Neste momento, realizaremos a cópia dos arquivos do pacote de instalação para um diretório no servidor e configure um pool no IIS para essa aplicação.

1. Adicione uma nova aplicação ao pool de aplicativos, com as seguintes configurações:

Name:

ReportAPI

.Net CLR Version:

.Net CLR Version v4.0.30319

Managed Pipeline Mode:

Integrado

Em seguida, recuperaremos os pacotes da ReportAPI (mesma versão operacional da solução Tactium IP) e colocaremos dentro do wwwroot para convertê-la posteriormente em aplicação.

Report API disponível a partir da versão 55.180.3 da solução Tactium IP.

Converta o diretório em uma aplicação usando o pool criado.

É altamente recomendado que o acesso a esta API seja feito por meio do protocolo HTTPS, uma vez que informações sensíveis como login e tokens serão transmitidas por essa conexão.

Configurando o acesso da API ao Banco de Dados do Tactium IP

Antes de iniciar os apontamentos necessários do no arquivo de configuração da API, criaremos a Tabela (na base do Tactium IP) que armazenará os dados dos usuários que terão acesso a receber os dados de consulta através da ReportAPI .

Tenha acesso ao script correspondente através do link abaixo:

[CREATE_TABLE_T-USER]

Agora iremos inserir os usuários. Disponibilizamos o script abaixo com a inserção de um usuário com as credenciais:

  • Login: admin e Password: Tactium@mis.

Recomendamos que seja realizada a alteração nos dados de inserção para atualizar os valores de Login e Password.

Tenha acesso ao script correspondente através do link abaixo:

[INSERT_USER_TABLE]

Após a conclusão do processo acima, podemos iniciar a configuração da API no arquivo “appsettings.json”, localizado na raiz do diretório.

  • No arquivo, você precisará definir as seguintes propriedades relacionadas ao banco de dados do MIS:

{
	"DatabaseApi": {
		"Host": "192.168.0.1",
		"DBName": "Tactium_MIS",
		"User": "usuario",
		"Passcode": "senha"
	}
}

 

Campo Descrição
DatabaseApi Bloco principal contendo as configurações de acesso ao banco de dados.
Host Endereço do servidor onde o banco de dados está hospedado.
DBName Nome da base de dados utilizada pela aplicação.
User Usuário autorizado a acessar o banco de dados.
Passcode Senha correspondente ao usuário configurado.

 

  • Além disso, como visto anteriormente, a API precisa ter acesso ao banco de dados do Tactium IP que terá acesso aos registros de usuários que podem ser autenticados. As propriedades relacionadas a essa configuração são:

Caso o acesso ao banco de dados de usuários contenha autenticação criptografada, será necessário criar uma tabela para receber os usuários da API.

{
  "JWTBearerAuth": {
    "ContextFactory": "MsSqlDBFactory",
    "TokenExpiringMinutes": 120,
    "Host": "192.168.0.1",
    "DbName": "TactiumIP",
    "User": "callback",
    "Passcode": "softium",
    "Table": "T_USER",
    "ColumnUser": "Name",
    "ColumnPass": "Password"
  }
}

 

Campo Descrição
ContextFactory Fornecedor do banco de dados.
TokenExpiringMinutes Tempo, em minutos, para a expiração do token.
Host Servidor de banco de dados para conexão (IP, hostname ou instância).
DbName Nome do banco de dados do Tactium IP.
User Usuário com privilégios para acessar o banco do Tactium IP.
Passcode Senha do usuário com privilégios para acessar o banco do Tactium IP.
Table Tabela onde os usuários da API estão armazenados (na base do Tactium IP). Deve permanecer como “T_USER“.
ColumnUser Coluna que representa o login dos usuários da API (na base do Tactium IP). Deve permanecer como “Name“.
ColumnPass Coluna que representa a senha dos usuários da API (na base do Tactium IP). Deve permanecer como “Password“.

Usando a ReportAPI do Tactium MIS

Após a conclusão das configurações acima, iremos realizar o teste de autenticação para uso da API e validar a obtenção dos dados  dos métodos disponíveis, utilizando o token de acesso. Utilizaremos a ferramenta Postman.

Os métodos disponíveis para autenticação e obtenção de dados são os seguintes:

 Autenticação
POST do HTTP + Link da Página Web + sufixo /Login

 

Detalhe de Ligações
POST do HTTP + Link da Página Web + sufixo /CallDetails

 

Detalhe de Atividades
POST do HTTP + Link da Página Web + sufixo /AgentDetails

Para mais informações acesse o Manual de Uso da Report API, este está disponível através do link da página web correspondente a aplicação bastando ser acrescentado no subdomínio o sufixo “/Documentation”.

Por exemplo: https://for.tactium.app/ip/mis/Documentation

Login

Vamos inicialmente verificar se a API consegue se autentificar para comunicar-se com o banco de dados, para isso execute o método POST do HTTP + Link da Página Web + sufixo /Login na chamada.

POST

https://for.tactium.app/ip/mis/Login

Os dados de entrada de tipo JSON serão inseridos no “Body” da requisição:

{
  "login": "admin",
  "password": "Tactium@mis"
}

 

Campo Descrição
Login Usuário que irá se autenticar com a API para gerar o token.
Password Senha correspondente ao usuário.

Executando o método podemos ter acesso ao token que utilizaremos para obter os dados do relatório desejado, logo a autenticação foi concluída com sucesso.

AgentDetails

Para consultar os dados do relatório Detalhe de Ligações utilizaremos o token gerado anteriormente no método POST do HTTP + Link da Página Web + sufixo /AgentDetails.

POST

https://for.tactium.app/ip/mis/AgentDetails

Os dados de entrada de tipo JSON serão inseridos no “Body” da requisição:

{
  "interval": {
    "startDate": "2023-09-14T17:54:04.867Z",
    "endDate": "2023-09-14T17:54:04.867Z"
  },
  "agentName": "atendente01"
}

 

Campo Descrição
interval Bloco que contém o intervalo de datas utilizadas na consulta.
startDate Data e hora inicial do intervalo consultado.
endDate Data e hora final do intervalo consultado.
agentName Nome do atendente selecionado para a consulta.

Insira o token gerado para efetuar a autorização na requisição.

Executando o método podemos ter acesso aos dados das atividades deste agente em específico.

Caso seja necessário obter as atividades de todos os agentes basta remover o parâmetro “agentName” da chamada.

CallDetails

Para consultar os dados do relatório Detalhe de Ligações utilizaremos o token gerado anteriormente no método POST do HTTP + Link da Página Web + sufixo /CallDetails.

POST

https://for.tactium.app/ip/mis/CallDetails

Os dados de entrada de tipo JSON serão inseridos no “Body” da requisição:

{
  "interval": {
    "startDate": "2018-01-01T00:00:00.351Z",
    "endDate": "2025-10-23T18:18:22.351Z"
  },
  "serviceName": "DEMONSTRACAO RECEPTIVO/DEMO RECEPTIVO",
  "agentName": "admin"
}

 

Campo Descrição
interval Bloco que define o intervalo de datas utilizado na consulta.
startDate Data e hora inicial do período consultado.
endDate Data e hora final do período consultado.
serviceName Nome do serviço selecionado para consulta (fila ou grupo de atendimento).
agentName Nome do atendente solicitado na consulta.

IvrProductivityDetails

Busca o resultado dos detalhes da produtividade das uras  utilizaremos o token gerado anteriormente no método POST do HTTP + Link da Página Web + sufixo /IvrProductivityDetails.

POST

https://for.tactium.app/ip/mis/IvrProductivityDetails

 

Os dados de entrada de tipo JSON serão inseridos no “Body” da requisição:

{
  "interval": {
    "startDate": "2024-01-16T18:12:05.947Z",
    "endDate": "2024-09-16T18:12:05.947Z"
  }
}

 

Campo Descrição
interval Bloco que define o intervalo de datas utilizado na consulta.
startDate Data e hora inicial do período consultado.
endDate Data e hora final do período consultado.

Insira o token gerado para efetuar a autorização na requisição.

Executando o método podemos ter acesso aos dados de ligações deste serviço e agente em específico.

Caso seja necessário receber todas as ligações sem filtrar pelo tipo de agente e serviço basta remover o parâmetro “agentName” e “serviceName” da chamada.

WhatsappDetails

Para consultar os dados do relatório Detalhe de Atendimentos de Mensagem utilizaremos o token gerado anteriormente no método POST do HTTP + Link da Página Web + sufixo /WhatsAppDetails.

POST

https://for.tactium.app/ip/mis/WhatsAppDetails

Os dados de entrada de tipo JSON serão inseridos no “Body” da requisição:

{
  "interval": {
    "startDate": "2024-08-16T18:12:05.947Z",
    "endDate": "2024-09-16T18:12:05.947Z"
  },
  "serviceName": "SAC – SUPORTE",
  "status": "Concluído",
  "type": "REC"
}

 

Campo Descrição
interval Bloco que define o intervalo de datas utilizado para a consulta.
startDate Data e hora inicial do período consultado.
endDate Data e hora final do período consultado.
serviceName Nome do serviço ou fila utilizada na consulta.
status Status atual do atendimento ou processo (ex.: Concluído, Pendente, Em andamento).
type Tipo de atendimento (receptivo ou ativo). Ex: “Rec” ou “Atv”.

Insira o token gerado para efetuar a autorização na requisição.

Executando o método podemos ter acesso aos dados de atendimentos deste serviço, status e tipo em específico.

Caso seja necessário receber todos os atendimentos sem filtrar pelo tipo de serviço, status ou tipo basta remover o parâmetro “serviceName”,”status” e “type” da chamada.

CampaignProductivityDetails

Para consultar os dados do relatório Produtividade Campanhas OMNI utilizaremos o token gerado anteriormente no método POST do HTTP + Link da Página Web + sufixo /CampaignProductivityDetails.

POST

https://for.tactium.app/ip/mis/CampaignProductivityDetails

Os dados de entrada de tipo JSON serão inseridos no “Body” da requisição:

{
  "interval": {
    "startDate": "2024-01-16T18:12:05.947Z",
    "endDate": "2024-09-16T18:12:05.947Z"
  },
  "phoneNumber": "999999999",
  "campaignName": "Nome da Campanha"
}

 

Campo Descrição
interval Bloco que representa o intervalo de datas utilizado na consulta.
startDate Data e hora inicial do período consultado.
endDate Data e hora final do período consultado.
phoneNumber Número de telefone utilizado como filtro para a consulta.
campaignName Nome da campanha à qual os registros consultados pertencem.

Insira o token gerado para efetuar a autorização na requisição.

Executando o método podemos ter acesso aos dados de campanha deste número e campanha em específico.

Caso seja necessário receber todos os atendimentos sem filtrar pelo número de telefone ou nome da campanha basta remover o parâmetro “phoneNumber”,”status” e “campaignName” da chamada.



Este conteúdo foi útil para você?
[WPAC_LIKE_SYSTEM]